客户端
package cn.usts.edu.lesson02;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
public class TcpClientDemo01 {
public static void main(String[] args) {
Socket socket=null;
OutputStream os = null;
// 1*要知道服务器的地址
try {
InetAddress ServerIP = InetAddress.getByName("127.0.0.1");
int port=9999;
= new Socket(ServerIP, port);//建立一个插座
socket = socket.getOutputStream();
os .write("第一个tcp聊天室".getBytes());
os
} catch (IOException e) {
.printStackTrace();
e}
if (socket!=null){
try {
.close();
socket} catch (IOException e) {
.printStackTrace();
e}
}
if (os!=null){
try {
.close();
os} catch (IOException e) {
.printStackTrace();
e}
}
}
}
服务端
package cn.usts.edu.lesson02;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServerDemo01 {
public static void main(String[] args) {
ServerSocket serverSocket = null;
Socket socket = null;
InputStream inputStream = null;
ByteArrayOutputStream byteArrayOutputStream = null;
// 1*首先得先有一个地址,让被人连过来
try {
// serverSocket默认开启服务的主机,当前的ip地址为服务器地址,所以只需要个端口号
= new ServerSocket(9999);
serverSocket while (true){
= serverSocket.accept();// 监听 监听接受到socket就是连接上来的socket
socket = socket.getInputStream();
inputStream // 读取消息
/* 获取超过1024个字节的中文就容易产生乱码
InputStream inputStream = socket.getInputStream();
byte[] buffer =new byte[1024];
int len;
// 从输入流读取一些字节数,并将它们存储到缓冲区b 。 实际读取的字节数作为整数返回。
while ((len=inputStream.read(buffer))!=-1){
String msg = new String(buffer, 0, len);
System.out.println(msg);
} */
= new ByteArrayOutputStream();
byteArrayOutputStream int len;
byte[] buffer = new byte[1024];
while ((len=inputStream.read(buffer))!=-1){
.write(buffer,0,len);
byteArrayOutputStream}
System.out.println(byteArrayOutputStream.toString());
}
} catch (IOException e) {
.printStackTrace();
e}
if (byteArrayOutputStream!=null){
try {
.close();
byteArrayOutputStream} catch (IOException e) {
.printStackTrace();
e}
}
if (inputStream!=null){
try {
.close();
inputStream} catch (IOException e) {
.printStackTrace();
e}
}
if (socket!=null){
try {
.close();
socket} catch (IOException e) {
.printStackTrace();
e}
}
if (serverSocket!=null){
try {
.close();
serverSocket} catch (IOException e) {
.printStackTrace();
e}
}
}
}